package com.ylxn.codeTop;

/**
 * @author cenghaile
 * @version 1.0.0
 * @titel AddStrings
 * @description <415.字符串相加>
 * @crete 2023/5/24 09:35
 */
public class AddStrings {
    /**
     * 给定两个字符串形式的非负整数 num1 和num2 ，计算它们的和并同样以字符串形式返回。
     * <p>
     * 你不能使用任何內建的用于处理大整数的库（比如 BigInteger）， 也不能直接将输入的字符串转换为整数形式。
     * 示例 1：
     * <p>
     * 输入：num1 = "11", num2 = "123"
     * 输出："134"
     *
     * @param num1
     * @param num2
     * @return
     */
    public static String addStrings(String num1, String num2) {
        int i = num1.length() - 1, j = num2.length() - 1, add = 0;
        StringBuffer builder = new StringBuffer();
        while (i >= 0 || j >= 0 || add != 0) {
            int x = i >= 0 ? num1.charAt(i) - '0' : 0;
            int y = j >= 0 ? num2.charAt(j) - '0' : 0;
            int temp = x + y + add;
            builder.append(temp % 10);
            add = temp / 10;
            i--;
            j--;
        }
        builder.reverse();
        return builder.toString();
    }

    public static void main(String[] args) {
        String a = "34324";
        String b = "324";
        String s = addStrings(a, b);
        System.out.println("s = " + s);
    }
}
